Method for associating production elements with a production approach

ABSTRACT

A computer-implemented method for managing associations between production elements and production approaches includes displaying, within a breakdown panel, a representation of at least one scene obtained from a script, the representation including a plurality of production elements; displaying, within an approaches panel, a representation of at least some of the plurality of production elements displayed within the breakdown panel, and associated respective user selection indicators; and displaying, within the approaches panel, a representation of at least one production approach. The method further includes receiving a user selection of at least one production element displayed within the approaches panel; receiving a user selection of the at least one production approach. The selected at least one production element is associated with the selected at least one production approach.

CROSS-REFERENCE TO RELATED APPLICATIONS

This application is a continuation of the U.S. utility patentapplication Ser. No. 17/364,418, filed Jun. 30, 2021, which claimspriority to the U.S. provisional patent application Ser. No. 63/215,696filed Jun. 28, 2021, all of which are incorporated herein by referencein their entirety.

FIELD

The present disclosure generally relates to a planning tool within aproduction pipeline for a film, television program, stage play, or videogame.

BACKGROUND

Existing processes within a production pipeline for a film, televisionprogram, stage play, or video game tend to be very mechanical. A userreads a script and breaks the script down and identifies constituentparts that are called out in the script. These parts are oftenmaintained in a spreadsheet application. Such spreadsheet applicationstend to lack the customization needed for them to function as efficientdata input tools as part of the production process for a film,television program or video game.

Another problem with existing data input tools is that they tend to besuited to a particular type of user performing a particular function.For example, a spreadsheet that is configured to enable a first user toidentify and record production elements within a script may not besuitable for a second user working elsewhere in the production pipeline.

It is an object of at least preferred embodiments to address at leastsome of the aforementioned disadvantages. An additional or alternativeobject is to at least provide the public with a useful choice.

SUMMARY

A computer-implemented method for managing associations betweenproduction elements and production approaches is provided. The methodcomprises, under the control of one or more computer systems configuredwith executable instructions: displaying, within a breakdown panel, arepresentation of at least one scene obtained from a script, therepresentation including a plurality of production elements; displaying,within an approaches panel, a representation of at least some of theplurality of production elements displayed within the breakdown panel,and associated respective user selection indicators; and displaying,within the approaches panel, a representation of at least one productionapproach. The method further includes receiving a user selection of atleast one production element displayed within the approaches panel; andreceiving a user selection of the at least one production approach. Theselected at least one production element is associated with the selectedat least one production approach.

The method may further comprise displaying, within the breakdown panel,a plurality of cells within a plurality of script rows, therepresentation of the at least one scene displayed within a plurality ofcells within at least one of the script rows.

The method may further comprise displaying, within the breakdown panel,at least some of the plurality of cells within a plurality of productionapproach columns, at least some of the plurality of productionapproaches associated to respective production approach categories.

The method may further comprise on receiving a user selection, withinthe breakdown panel, of at least one cell of the plurality of cells:displaying, within the approaches panel, a representation of at leastone production approach associated with the user-selected cell; anddisplaying, within the approaches panel, a representation of at leastone production element associated with the user-selected cell.

The method may further comprise on receiving a user definition of a newproduction element within the breakdown panel: displaying the newproduction element in an element panel and/or the approaches panel.

The method may further comprise on receiving a user amendment of aproduction element within the breakdown panel: displaying the amendedproduction element in an element panel and/or the approaches panel.

The method may further comprise on receiving a user amendment of aproduction element within an element panel: displaying the amendedproduction element in the breakdown panel and/or the approaches panel.

The method may further comprise displaying, within a category panel, arepresentation of at least one production element; and receiving, withinthe category panel, a user definition of a variant based at least partlyon the at least one production element displayed in the category panel.

The method may further comprise displaying, within the breakdown panel,at least some of the plurality of cells within a plurality of productionelement columns, at least some of the plurality of production elementscolumns associated to respective production element categories.

The method may further comprise displaying an approaches workspacewithin the approaches panel; and presenting the representation of atleast one production approach within the approaches workspace.

The method may further comprise displaying an elements workspace withinthe approaches panel; and presenting the representation of at least someof the plurality of production elements and associated respective userselection indicators within the elements workspace.

A computer system for managing associations between production elementsand production approaches is provided. The system comprises: at leastone processor; and a computer-readable medium storing instructions. Theinstructions, when executed by the at least one processor, cause thesystem to: display, within a breakdown panel, a representation of atleast one scene obtained from a script, the representation including aplurality of production elements; display, within an approaches panel, arepresentation of at least some of the plurality of production elementsdisplayed within the breakdown panel, and associated respective userselection indicators; display, within the approaches panel, arepresentation of at least one production approach; receive a userselection of at least one production element displayed within theapproaches panel; receive a user selection of the at least oneproduction approach; and associate the selected at least one productionelement with the selected at least one production approach.

A non-transitory computer-readable storage medium storing instructionsis provided. The instructions, when executed by at least one processorof a computer system, cause the computer system to carry out a methodfor managing associations between production elements and productionapproaches. The method comprises: displaying, within a breakdown panel,a representation of at least one scene obtained from a script, therepresentation including a plurality of production elements; displaying,within an approaches panel, a representation of at least some of theplurality of production elements displayed within the breakdown panel,and associated respective user selection indicators; displaying, withinthe approaches panel, a representation of at least one productionapproach; receiving a user selection of at least one production elementdisplayed within the approaches panel; receiving a user selection of theat least one production approach; and associating the selected at leastone production element with the selected at least one productionapproach.

A computer-readable medium carrying instructions is also provided. Theinstructions, when executed by at least one processor of a computersystem, cause the computer system to carry out a method for managingassociations between production elements and production approaches. Themethod comprises: displaying, within a breakdown panel, a representationof at least one scene obtained from a script, the representationincluding a plurality of production elements; displaying, within anapproaches panel, a representation of at least some of the plurality ofproduction elements displayed within the breakdown panel, and associatedrespective user selection indicators; displaying, within the approachespanel, a representation of at least one production approach; receiving auser selection of at least one production element displayed within theapproaches panel; receiving a user selection of the at least oneproduction approach; and associating the selected at least oneproduction element with the selected at least one production approach.

BRIEF DESCRIPTION OF THE DRAWINGS

Various embodiments in accordance with the present disclosure will bedescribed with reference to the drawings, in which:

FIG. 1 is a diagram of a system for defining and managing productionelements and production approaches.

FIG. 2 shows an example of a GUI window presented to a user as part ofthe system of FIG. 1.

FIG. 3 shows an example of a breakdown panel from FIG. 2.

FIG. 4 shows a more detailed example of breakdown panel from FIG. 3.

FIG. 5 shows an example of element panel from FIG. 2.

FIG. 6 shows an example of approaches panel from FIG. 2.

FIG. 7 shows an example of a category panel.

FIG. 8 is a block diagram illustrating an example computer system uponwhich computer systems of the systems illustrated in FIGS. 1 and 9 maybe implemented.

FIG. 9 illustrates an example visual content generation system as mightbe used to generate imagery in the form of still images and/or videosequences of images.

FIG. 10 shows an example of a method of managing associations betweenproduction elements and production approaches using the GUI of FIG. 2.

DETAILED DESCRIPTION

In the following description, various embodiments will be described. Forpurposes of explanation, specific configurations and details are setforth in order to provide a thorough understanding of the embodiments.However, it will also be apparent to one skilled in the art that theembodiments may be practiced without the specific details. Furthermore,well-known features may be omitted or simplified in order not to obscurethe embodiment being described.

FIG. 1 shows a system 100 for defining and managing production elementsand production approaches. As will be more particularly described below,a user 102 is provided with a script 104. Script 104 or screenplay istypically a written work in digital or paper form. Script 104 istypically presented in plain text form for humans to consume. It is awritten work that is used in the production of a film, televisionprogram, stage play, or video game.

Script 104 includes natural language descriptions of narrative elementsthat describe a particular scene or multiple scenes in a film,television program or video game. Narrative elements may also beassociated with one or more characters.

As part of a production process for a film, television program or videogame, user 102 parses script 104 to define production elements withinthe script. As will be described below, production elements include, forexample, characters, creatures, vehicles and props. Production elementsare typically associated with nouns and represent objects in a script.

User 102 also defines production approaches from script 104. Onefunction of a production approach is to specify a relationship betweentwo or more production elements. For example, a particular scene maycall for a character to hold a prop. Approaches are often intended to bereused. For example, the same production approach ‘character holdingprop’ may be used in several different scenes.

Production approaches are typically associated with verbs in a script. Aproduction approach, for example, may specify how something will be doneand which department or group of users within the production pipelinewill be doing the work.

This task of identifying and defining production elements and productionapproaches has the potential to be a tedious task. Maintainingrelationships between production elements and scenes, between productionapproaches and scenes, and between production elements and productionapproaches is a difficult task that is prone to error. One issue is thatrelationships between the various elements of a script may changebefore, during or after filming. These changes to relationships may bedifficult to implement if they need to be located and updated manually.

Furthermore, a single sentence in a script has the potential to involvemultiple approaches. For example, several elements and approaches can beinferred from the sentence ‘Jake is swimming in the water’. Elements arethe character ‘Jake’ and water. Jake is engaged in the motion ofswimming. An approach can include special effects involving water.Another approach can include wet shading of the character's skin. Thewet shading of the Jake's skin can be a variant of the character Jake,described below. A third approach can include an animation effect ofsplashing in the water caused by the character. The inference can bemade using a trained machine learning/artificial intelligence model thattakes as input natural language description, such as the script, or aportion of the script, and infers the appropriate approaches andelements.

In an implementation, user 102 operates a computer system such ascomputer system 800 shown in FIG. 8. User 102 may operate, for example,input device 814 and cursor control 816 in order to enter to enter datato be stored in main memory 806, storage device 810 and/or server 830.User 102 is provided with display 812 in order to assist with data entryand data editing. Graphical User Interface (GUI) 106 is provided on, forexample, display 812 to assist the user with data entry and dataediting. An example GUI 106 is shown at 200 in FIG. 2 below.

In an implementation, GUI 106 comprises a Qt widget that provides user102 with a tool in which enter, for example, production elements,production approaches, and relationships between these components. In animplementation, at least some of the relationships are configuredmanually by user 102. In an implementation, at least some of therelationships are configured by business-logic automation within GUI106.

Various elements of script 104 are maintained in data store 108. In animplementation, data store 108 is maintained in main memory 806, storagedevice 810 and/or server 830 (see FIG. 8). In an implementation, datastore 108 is maintained in a computer system other than computer system800. In an implementation, data store 108 is maintained over multiplecomputer systems.

In an implementation, data store 108 comprises a relational databasethat is configured to store tables of objects including productionelements, production approaches, and variants as will be furtherdescribed below.

Interface layer 110 may be positioned between GUI 106 and data store108. In an implementation, interface layer 110 performs logic asrequired to map tables and relationships in data store 108 to datasuitable for display and editing within GUI 106. The interface layer 110can process user input received through the GUI 106.

In an implementation, system 100 includes second interface layer 112configured for use by user 114. User 114 may, for example, add, deleteor amend data maintained in data store 108 through interface layer 112as an alternative to GUI 106 and interface layer 106.

System 100 may include third interface layer 116. In an implementation,interface layer 116 is configured to map data retrieved from data store108 to at least one production system 118. Examples of suitableproduction system include asset and/or task management tools such asShotgun, and digital creation software such as Maya, Houdini, and Nuke.

Interfaces such as second interface layer 112 and third interface layer116 have the potential to provide bespoke linking of elements acrossentire film and across different parts of the film.

In an implementation, system 100 may include parser 120. Script 104 isprovided as input to parser 120. Parser 120 may be implemented, forexample as computer-executable instructions that cause processor 804within computer system 800 to perform at least some of the functions ofparser 120 described below.

FIG. 2 shows an example of a window 200 of the GUI 106 presented to, forexample, user 102 (See FIG. 1). In an implementation, window 200 ispresented on display 812 for viewing by user 102.

In an implementation, window 200 includes breakdown panel 202. A moredetailed example of breakdown panel 202 is shown below in FIG. 3 andFIG. 4. In an implementation, user 102 enters scenes or shots identifiedfrom script 104. For example, the user may enter a scene or shot asrespective rows of data within breakdown panel 202. Examples of rows areshown at 204. In an implementation, respective rows are associated tojust one scene or shot in script 104.

Breakdown panel 202 may be referred to as an ‘initial’ breakdown panelby those users who view a script as being prominent. Such users wouldposition the breakdown panel 202 in a prominent or dominant position ondisplay 812.

Breakdown panel 202 may further include at least one production element.Production elements may comprise objects or collections of objects thatappear within a selected scene. Production elements may be furthergrouped into categories. Examples of categories include environment,characters, creatures, vehicles, and props.

Breakdown panel 202 may further include at least one productionapproach. Production approaches include animation approaches, artapproaches, camera approaches, compositing approaches, creaturesapproaches, and facial models approaches. At least some of theseproduction approaches are associated with respective departments or workgroups within a production pipeline. An animation approach may signalthe requirement for a set of tasks by an animation department. A facialmodels approach may signal the requirement for a set of tasks by afacial models department.

Even though the tasks may be performed by different departments, GUI 200has the potential to provide a centralized repository of informationthat all departments may contribute back to.

In an implementation, breakdown panel 202 presents a plurality ofcolumns. In an implementation, respective columns are associated to aproduction category selected from a plurality of production categories.Examples of production categories include production elements category206 and production approaches category 207. Respective columns areassociated to just one production category and are grouped togetherbased on production category. Instances of production elements andproduction approaches appear as lists of production elements andproduction approaches at the respective intersections of rowsrepresenting scenes, and columns representing categories of productionelements and production approaches.

In an implementation, parser 120 (see FIG. 1) is configured to performnatural language processing on the text of script 104. Parser 120 mayidentify, for example, production elements that are called out withinscript 104. At least one of these production elements identified byparser 120 is added to breakdown panel 202 either manually by user 102or automatically by parser 120.

In an implementation, parser 120 is configured to perform artificialintelligence inference on the text of script 104 and/or on productionelements identified by parser 120 within script 104. Parser 120 may, forexample, perform automated inference to identify at least one productionelement and/or at least one production approach. For example, parser 120can use natural language processing (NLP) to identify elements andapproaches contained in the text of script 104. Production element(s)and/or production approach(es) inferred by parser 120 may be added tobreakdown panel 202 either manually by user 102 or automatically byparser 120.

Described above is an example of a single sentence in script 104 fromwhich multiple approaches may be inferred, ‘Jake is swimming in thewater’. Parser 120 may perform automated inference on this part ofscript 104 to infer that ‘Jake’ is a character which is a type ofproduction element. This production element may then be added tobreakdown panel 202. Additionally, parser 120 can infer that water is anelement and add “water” to breakdown panel 202.

As described above, several approaches can be inferred from the sentence‘Jake is swimming in the water’. One of these approaches is that Jake isengaged in the motion of swimming. In an implementation, parser 120 isconfigured to perform automated inference that Jake is performing amotion characteristic of swimming. Other approaches may similarly bedetermined and added to breakdown panel 202 by automated inference, suchas the scene includes special effects involving water, the skin of thecharacter is wet, and there is an animation effect of splashing in thewater caused by the character.

In an implementation, GUI 106 is configured to perform automatedinference on the contents of breakdown panel 202 for example. As user102 enters data into breakdown panel 202, GUI performs automatedinference to identify elements and/or approaches to add to breakdownpanel 202.

For example, the step of user 102 adding a representation of ‘Jake isswimming in the water’ to breakdown panel 202 may cause GUI 106 to addone or more approaches to breakdown panel 202. Examples of theseapproaches include one or more of Jake is performing a motioncharacteristic of swimming, the scene includes special effects involvingwater, the skin of the character is wet, and there is an animationeffect of splashing in the water caused by the character.

In an implementation, GUI 106 may be configured to perform automatedinference to identify and add additional production elements tobreakdown panel 202 as user 102 populates breakdown panel 202 manually.

In an implementation, window 200 includes element panel 208. A moredetailed example of element panel 208 is shown below in FIG. 5.

Element panel 208 presents a plurality of rows. Examples of rows areshown at 210. Respective rows are associated to just one productionelement. Element panel 208 may include for example, production elementfilter 212. In an implementation, production element filter 212 isconfigured to receive a selection from user 102 associated to aproduction element category. Once a filter is selected, only thoseproduction elements matching the selected production element categoryare displayed as rows within element panel 208.

Window 200, as shown in FIG. 2, includes approaches panel 214. Moredetailed examples of approaches panel 214 are shown in FIG. 6 and FIG. 8and are described below.

In an implementation, the window in which approaches panel 214 ispresented is configured to provide more than one function to user 102.The window may include, for example, a function switch 216 that enablesuser 102 to toggle between window functions. One available function ofthe window is the provision of approaches panel 214. Another availablefunction of the window is the provision of a category panel (not shownin FIG. 2) that is further described below.

In an implementation, whether to present approaches panel 214 or whetherto present category panel to the user is determined by user actionselsewhere within window 200. GUI 106, for example, may use businesslogic to determine which panel to present to user 102 based at least onuser activity within window 202. For example, the action of user 102selecting a cell within production approaches category 207 causesapproaches panel 214 to be displayed to user 102. In this case, businesslogic may determine that user 102 intends to add or modify an approach.

As shown in FIG. 2, approaches panel 214 includes an approachesworkspace 218 and an elements workspace 220.

In an implementation, approaches workspace 218 displays a list ofproduction approaches defined by user 102 in breakdown panel 202. Thelist of production approaches may include all production approaches frombreakdown panel 202, or at least some of the production approaches.Elements panel 220 displays a list of production elements also definedby user 102 in breakdown panel 202. As will be described below (see FIG.6), approaches panel 214 is configured to receive a user selection ofassociation(s) between at least one of the production approaches shownin approaches workspace 218 and at least one of the production elementsshown in elements panel 220.

As will be described in further detail below, additions and amendmentsto the contents of at least one of breakdown panel 202, element panel208 and approaches panel 214 causes changes in the data displayed in thebreakdown panel 202, element panel 208 and/or approaches panel 214. Thisautomatic population has the potential to provide an auditing tool foruser 102 to ensure continuity between scenes.

The window 200 of the GUI 106 can adjust the information displayed basedon a role of the user viewing the window 200. The role of user viewingthe window can be defined based on a particular production department inwhich the user works, such as animation, special effects, shading,accounting, management, etc.

For example, if the user is an animator, the GUI 106, for the singlescene ‘Jake is swimming in the water’, can show “Jake” under “Elements”and “swim” under “Approaches.” In another example, if the user is ashading artist, the GUI 106, for the single scene ‘Jake is swimming inthe water’, can show “Jake” under “Elements” and “wet shading” under“Approaches.” If the user is a special effects artist, the GUI 106 canshow “water” under “Elements” and “splashing” under “Approaches.” TheGUI 106 can receive an input from the user defining the user's role, orthe GUI can identify the user's role based on the user's login. Based onthe user's login, the interface layer 110 in FIG. 1 can retrieve fromthe data store 108 in FIG. 1 the user's role in the organization andbased on the role present the appropriate window 200.

In addition, the window 200 of the GUI 106 can show approaches andelements in a scene, a sequence, or across sequences. One sequencecontains one or more scenes, and the script contains one or moresequences. By enabling the user to view how approaches to an elementvary across multiple scenes in a sequence, the interface layer 110 canensure continuity across scenes, or across sequences.

For example, scenes 1, 2 and 3 form a sequence. The script in scene 1can state “Jake is carrying a gun.” The elements for scene 1 can specify“Jake” and “gun”. Alternatively, the elements for scene 1 can specify“Jake variant with a gun,” thus indicating that the character includedin scene 1 is a variant of Jake carrying a gun. In scene 2, the scriptcan state “Jake is running across the field.” The elements for scene 2can specify “Jake”. In scene 3, the script can state “Jake is firing thegun.” The elements in scene 3 can specify “Jake” and “gun”, or “Jakevariant with a gun.” Since in scene 2, the script does not explicitlystate that Jake has a gun, the elements in scene 2 can leave “gun” outof the “Elements” 206 panel. If the user views the whole sequence, theuser can identify the discontinuity in scene 2, namely, that Jake doesnot have a gun. Consequently, the user can add “gun” as an element toscene 2.

Alternatively, the interface layer 110 can automatically identifydiscontinuities between elements in a sequence, and provide a suggestionto a user how to fix the discontinuity. Specifically, in the aboveexample, the interface layer 110 can detect a discontinuity, namely,that scene 2 is missing a gun, while scenes 1 and 3 contain a gun. Theinterface layer 110 can query the user whether to add “gun” is anelement to scene 2, and/or whether to include “Jake variant with a gun”in scene 2.

It will be appreciated that the placement and sizing of panels shown inwindow 200 may be determined by user 102. For example, user 102 mayreposition at least one panel within window 200 using a drag and dropaction. Panels may be hidden, made visible, resized and/or dragged intoother locations.

FIG. 3 shows a more detailed example of breakdown panel 202 (see FIG. 2)and shows, for the purposes of explanation, sample data that may beentered by user 102 relating to production elements.

As shown in FIG. 3, breakdown panel 202 includes a plurality ofproduction element columns 300. These production element columns aregrouped into a plurality of production element categories. Examples ofproduction element categories shown in FIG. 3 include Environment,Characters, Creatures, Vehicles, and Props.

Also shown in FIG. 3 is that breakdown panel 202 includes a plurality ofscript breakdown columns 302. Examples of script breakdown columnsinclude a scene or shot identifier, a page number of script 104 on whicha scene appears, a time at which the scene is set (for example dawn,day, night etc), a location flag signaling whether the scene is interioror exterior, and a description.

Breakdown panel 202 as shown in FIG. 3 further includes a plurality ofscenes or shots 304 represented as individual rows. In animplementation, rows are distinguished from each other by including aunique scene identifier. Example scene identifiers include 0001, 0010,and 0002.

Scene 0001 for example includes an environment comprising a glade, twocharacters Josh and Neytiri, two vehicles (a plane and a truck), and aprop comprising field-glasses. Scene 0010 includes the same environment,characters, and vehicles as scene 0001 but does not include thefield-glasses as a prop.

Some production elements might not exist in the initial version of thescript and so would not be entered in breakdown panel 202. In animplementation, production elements may be added by user 102 at any timein the production pipeline. As production elements are added tobreakdown panel 202, the new production elements appear, for example, inelement panel 208 and approaches panel 214.

FIG. 4 shows a more detailed example of breakdown panel 202 (see FIG. 2)and shows, for the purposes of explanation, some sample data relating toproduction approaches that may be entered by user 102, or populated byparser 120 (see FIG. 1).

As shown in FIG. 4, breakdown panel 202 includes a plurality ofproduction approach columns 400. These production approach columns areassociated to respective production approach categories. Examples ofproduction approach categories shown in FIG. 4 include animationapproaches, art approaches, camera approaches, compositing approaches,and creatures approaches.

Scene 0001 for example includes an animation approach comprisingcharacter holding prop. This animation approach specifies Josh as thecharacter and Field-Glasses as the prop. Scene 0010 does not include theanimation approach associated to Scene 0001. In Scene 0010, Josh is notholding Field-glasses.

User 102 may specify an approach required for a particular creature forexample. Certain creatures may require a lot of bespoke work on thatcharacter relating to animation and hair. Such creatures require a verymanual approach. In other cases, an approach will be very mechanicalthat won't need much human intervention. Such automated approachesinclude crowd scenes.

User 102 may specify a manual approach or an automated approach. Forexample, some background characters may be affiliated with an automatedapproach, while hero characters may be affiliated with a manualapproach. The names of both approaches may be displayed in a list withina cell. The cell may appear within a row thereby indicating a scene orshot to which the cell is associated.

FIG. 5 shows a more detailed example of element panel 208 (see FIG. 2)and shows, for the purposes of explanation, some sample data that may bedisplayed to user 102. Element panel 208 displays different types ofproduction elements that are called out in a script.

As shown in FIG. 5, element panel 208 includes a plurality of productionelement rows 500. User 102 has selected the ‘Characters’ productionelement group within the production element filter 212. Therefore, therows presented in element panel 208 represent the characters Josh andNeytiri respectively.

In an implementation, as a user selection of a production element groupis received, the production elements associated to that productionelement group are displayed in element panel 208.

In an implementation, user 102 may enter production elements intobreakdown panel 202. As production elements are entered, or amended, inbreakdown panel 202, element panel 208 is populated with the new oramended production element data. In an implementation, user 102 maycause changes to be made to production elements within the element panel208. As these changes are made, the amended production elements aredisplayed in breakdown panel 202.

In an implementation, where user 102 makes a change to a productionelement, for example the name of a production element, that change ofname is updated in all instances within breakdown panel 202. Forexample, changing the name of a character in one panel causes the nameof the character to be changed in each scene within breakdown panel 202.

FIG. 6 shows a more detailed example of approaches panel 214 (see FIG.2) providing the production approach function. Approaches panel 214shows, for the purposes of explanation, sample data relating toproduction approaches and production elements.

In an implementation, at least one production approach is displayedwithin approaches workspace 218. For example, approaches workspace 218may have displayed within it a list of production approaches that user102 has entered into breakdown panel 202 (see FIG. 2). If user 102selects a cell in the ‘art approaches’ column for example, at least someof the art approaches are displayed as a list 610 in approachesworkspace 618.

Where a list of production approaches is presented, approaches workspace218 may be configured to receive a user selection of one of theproduction approaches displayed within approaches workspace 218.

For example, approaches workspace 618 includes at least one productionapproach user selection indicator. Examples of production element userselection indicators are indicated at 612. One example of a set of userselection indicators 612 includes a plurality of check boxes associatedto respective production approaches displayed within approachesworkspace 618. The check boxes are configured to receive a userselection that has the effect of toggling at least one of the checkboxes between a user selected state in which a check mark is displayedand a user non-selected state in which no check mark is displayed.

In another example, breakdown panel 202 is configured to receive a userselection of a production approach displayed in breakdown panel 202. Inthis case, approaches workspace 218 may be configured to display onlythe production approach that has been selected by user 102 withinbreakdown panel 202.

For the purposes of explanation, the production approach shown inapproaches workspace 218 comprises ‘character holding prop’. It isassumed that this animation approach has been selected by the userwithin approaches workspace 218 and/or selected by the user withinbreakdown panel 202.

The production approach shown in approaches workspace 218 is associatedto a scene or shot displayed in breakdown panel 202. Where multipleproduction approaches are displayed, the production approaches areassociated to respective scenes or shots displayed in breakdown panel202. For example, the production approach ‘character holding prop’ mayappear in a plurality of scenes or shots shown in breakdown panel 202.Each instance of ‘character holding prop’ may be associated to a set ofproduction elements. Different instances of ‘character holding prop’ maybe associated to different sets of production elements.

Also shown in FIG. 6 is elements workspace 220 populated with sampledata for the purposes of explanation. Elements workspace 220 maydisplay, for example, a list 600 of production elements displayed inbreakdown panel 202. In an implementation, each production elementdisplayed in breakdown panel 202 is displayed in elements workspace 220.

In an implementation, at least some of the production elements aregrouped by production element categories. For example, characters Joshand Neytiri are displayed as grouped together under the characterscategory. Vehicles ‘truck’ and ‘plane’ are displayed as grouped togetherunder the vehicles category.

In an implementation, elements workspace 220 includes at least oneproduction element user selection indicator. Examples of productionelement user selection indicators are indicated at 602. One example of aset of user selection indicators 602 includes a plurality of check boxesassociated to respective production elements displayed within elementsworkspace 220. The check boxes are configured to receive a userselection that has the effect of toggling at least one of the checkboxes between a user selected state in which a check mark is displayedand a user non-selected state in which no check mark is displayed.

As shown in FIG. 6, user 102 has selected character element ‘Neytiri’,and prop element ‘bow’. The remaining production elements displayed inelements workspace 220 are not currently selected by user 102.

In an implementation, as user 102 selects a character element withinelements workspace 220, the selected character element is caused to beassociated with a production approach that is active within approachesworkspace 218. For example, selecting ‘Neytiri’ and ‘bow’ withinelements workspace 220 has the effect of associating these selectedproduction elements with the animation approach ‘character holdingprop’. On the other hand, de-selecting elements within elementsworkspace 220 has the effect of removing an association of thede-selected production elements within the animation approach ‘characterholding prop’.

User 102 may select, for example, a cell within breakdown panel. Thecell may lie within the art approach column which indicates that user102 is interested in an art approach. The cell may lie within a rowassociated with a scene or shot which indicates which scene or shot user102 is interested in. At least one art approach may be displayed as alist in approaches workspace 618. At least one production elementdefined in the scene or shot of interest to the user may be displayed inelements workspace 620. User 102 may then affiliate at least oneproduction element displayed in elements workspace 620 with at least oneart approach displayed in approaches panel 618.

Approaches workspace 618 may include specific notes and may implycoordination between departments. For example, the animation approach‘character holding prop’ signals that there is a requirement forcoordination between the modelling department for the prop and thecreatures department for the character. This relationship has thepotential to assist departments in priority and scheduling within theproduction pipeline. If a prop is involved in an animation approach thenthe modelling department may need to prioritise the prop.

It is anticipated that some approaches will be reused across more thanone script. For example, the approach ‘character holding prop’ will lookfairly similar across shows and is therefore reusable at least acrossscenes and shots within a script.

FIG. 7 shows an example of category panel 700. This panel is referred toin FIG. 2 as selectable using function switch 216. Category panel 700shows, for the purposes of explanation, sample data relating toproduction elements.

In an implementation, user 102 selects a production element withinelement panel 208 (see FIG. 2). User 102 may select, for example, the‘vehicles’ category, and ‘truck’ within the ‘vehicles’ category.

Maintained in data store 108 may be, for example, a representation ofdefining characteristics of a base version of at least one productionelement. For example, a ‘base’ version of a truck may be maintained indata store 108. This base version of the truck may specify, for example,a truck that is pure and pristine.

As shown in FIG. 7, category panel 214 is configured to receive a userdefinition of a variant. User 102 may specify, for example, that aparticular scene or shot requires a truck, and that the truck is avariant from the base or standard definition of the truck. For example,a scene may call for a truck with bullet holes. User 102 may select abase version of the truck and then define a variant of the truck thatincludes bullet holes.

It is also envisaged that the same character may have at least onevariant or form that may appear in different scenes. In animplementation, GUI 200 is configured to populate a scene with a variantthat has been selected at least partly form automated reasoning and/orartificial intelligence. Where automation is implemented, such automatedselection may be changed manually by user 102.

In an implementation, category panel 700 receives from user 102 at leastone variation and displays the variations in separate rows in thecategory panel 700. The variations collectively define a variant thatcan be user specified and used as a production element in place of thebase version of the truck.

Once user 102 has defined the truck variant, element panel 208 isupdated to display the variant as appearing in the relevant scene orshot.

According to one implementation, the techniques described herein areimplemented by one or generalized computing systems programmed toperform the techniques pursuant to program instructions in firmware,memory, other storage, or a combination. Special-purpose computingdevices may be used, such as desktop computer systems, portable computersystems, handheld devices, networking devices or any other device thatincorporates hard-wired and/or program logic to implement thetechniques.

For example, FIG. 8 is a block diagram that illustrates a computersystem 800 upon which the computer systems of the system 100 (seeFIG. 1) and/or the visual content generation system 900 (see FIG. 9) maybe implemented. The computer system 800 includes a bus 802 or othercommunication mechanism for communicating information, and a processor804 coupled with the bus 802 for processing information. The processor804 may be, for example, a general purpose microprocessor.

The computer system 800 also includes a main memory 806, such as arandom access memory (RAM) or other dynamic storage device, coupled tothe bus 802 for storing information and instructions to be executed bythe processor 804. The main memory 806 may also be used for storingtemporary variables or other intermediate information during executionof instructions to be executed by the processor 804. Such instructions,when stored in non-transitory storage media accessible to the processor804, render the computer system 800 into a special-purpose machine thatis customized to perform the operations specified in the instructions.

The computer system 800 further includes a read only memory (ROM) 808 orother static storage device coupled to the bus 802 for storing staticinformation and instructions for the processor 804. A storage device810, such as a magnetic disk or optical disk, is provided and coupled tothe bus 802 for storing information and instructions.

The computer system 800 may be coupled via the bus 802 to a display 812,such as a computer monitor, for displaying information to a computeruser. An input device 814, including alphanumeric and other keys, iscoupled to the bus 802 for communicating information and commandselections to the processor 804. Another type of user input device is acursor control 816, such as a mouse, a trackball, or cursor directionkeys for communicating direction information and command selections tothe processor 804 and for controlling cursor movement on the display812. This input device typically has two degrees of freedom in two axes,a first axis (e.g., x) and a second axis (e.g., y), that allows thedevice to specify positions in a plane.

The computer system 800 may implement the techniques described hereinusing customized hard-wired logic, one or more ASICs or FPGAs, firmwareand/or program logic which in combination with the computer systemcauses or programs the computer system 800 to be a special-purposemachine. According to one implementation, the techniques herein areperformed by the computer system 800 in response to the processor 804executing one or more sequences of one or more instructions contained inthe main memory 806. Such instructions may be read into the main memory806 from another storage medium, such as the storage device 810.Execution of the sequences of instructions contained in the main memory806 causes the processor 804 to perform the process steps describedherein. In other implementations, hard-wired circuitry may be used inplace of or in combination with software instructions.

The term “storage media” as used herein refers to any non-transitorymedia that store data and/or instructions that cause a machine tooperation in a specific fashion. Such storage media may includenon-volatile media and/or volatile media. Non-volatile media includes,for example, optical or magnetic disks, such as the storage device 810.Volatile media includes dynamic memory, such as the main memory 806.Common forms of storage media include, for example, a floppy disk, aflexible disk, hard disk, solid state drive, magnetic tape, or any othermagnetic data storage medium, a CD-ROM, any other optical data storagemedium, any physical medium with patterns of holes, a RAM, a PROM, anEPROM, a FLASH-EPROM, NVRAM, any other memory chip or cartridge.

Storage media is distinct from but may be used in conjunction withtransmission media. Transmission media participates in transferringinformation between storage media. For example, transmission mediaincludes coaxial cables, copper wire, and fiber optics, including thewires that include the bus 802. Transmission media can also take theform of acoustic or light waves, such as those generated duringradio-wave and infra-red data communications.

Various forms of media may be involved in carrying one or more sequencesof one or more instructions to the processor 804 for execution. Forexample, the instructions may initially be carried on a magnetic disk orsolid state drive of a remote computer. The remote computer can load theinstructions into its dynamic memory and send the instructions over anetwork connection. A modem or network interface local to the computersystem 800 can receive the data. The bus 802 carries the data to themain memory 806, from which the processor 804 retrieves and executes theinstructions. The instructions received by the main memory 806 mayoptionally be stored on the storage device 810 either before or afterexecution by the processor 804.

The computer system 800 also includes a communication interface 818coupled to the bus 802. The communication interface 818 provides atwo-way data communication coupling to a network link 820 that isconnected to a local network 822. For example, the communicationinterface 818 may be an integrated services digital network (ISDN) card,cable modem, satellite modem, or a modem to provide a data communicationconnection to a corresponding type of telephone line. Wireless links mayalso be implemented. In any such implementation, the communicationinterface 818 sends and receives electrical, electromagnetic, or opticalsignals that carry digital data streams representing various types ofinformation.

The network link 820 typically provides data communication through oneor more networks to other data devices. For example, the network link820 may provide a connection through the local network 822 to a hostcomputer 824 or to data equipment operated by an Internet ServiceProvider (ISP) 826. The ISP 826 in turn provides data communicationservices through the world wide packet data communication network nowcommonly referred to as the “Internet” 828. The local network 822 andInternet 828 both use electrical, electromagnetic, or optical signalsthat carry digital data streams. The signals through the variousnetworks and the signals on the network link 820 and through thecommunication interface 818, which carry the digital data to and fromthe computer system 800, are example forms of transmission media.

The computer system 800 can send messages and receive data, includingprogram code, through the network(s), the network link 820, andcommunication interface 818. In the Internet example, a server 830 mighttransmit a requested code for an application program through theInternet 828, ISP 826, local network 822, and communication interface818. The received code may be executed by the processor 804 as it isreceived, and/or stored in the storage device 810, or other non-volatilestorage for later execution.

For example, FIG. 9 illustrates the example visual content generationsystem 900 as might be used to generate imagery in the form of stillimages and/or video sequences of images. The visual content generationsystem 900 might generate imagery of live action scenes, computergenerated scenes, or a combination thereof. In a practical system, usersare provided with tools that allow them to specify, at high levels andlow levels where necessary, what is to go into that imagery. Forexample, a user might be an animation artist and might use the visualcontent generation system 900 to capture interaction between two humanactors performing live on a sound stage and replace one of the humanactors with a computer-generated anthropomorphic non-human being thatbehaves in ways that mimic the replaced human actor's movements andmannerisms, and then add in a third computer-generated character andbackground scene elements that are computer-generated, all in order totell a desired story or generate desired imagery.

Still images that are output by the visual content generation system 900might be represented in computer memory as pixel arrays, such as atwo-dimensional array of pixel color values, each associated with apixel having a position in a two-dimensional image array. Pixel colorvalues might be represented by three or more (or fewer) color values perpixel, such as a red value, a green value, and a blue value (e.g., inRGB format). Dimension of such a two-dimensional array of pixel colorvalues might correspond to a preferred and/or standard display scheme,such as 1920 pixel columns by 1280 pixel rows. Images might or might notbe stored in a compressed format, but either way, a desired image may berepresented as a two-dimensional array of pixel color values. In anothervariation, images are represented by a pair of stereo images forthree-dimensional presentations and in other variations, some or all ofan image output might represent three-dimensional imagery instead ofjust two-dimensional views.

A stored video sequence might include a plurality of images such as thestill images described above, but where each image of the plurality ofimages has a place in a timing sequence and the stored video sequence isarranged so that when each image is displayed in order, at a timeindicated by the timing sequence, the display presents what appears tobe moving and/or changing imagery. In one representation, each image ofthe plurality of images is a video frame having a specified frame numberthat corresponds to an amount of time that would elapse from when avideo sequence begins playing until that specified frame is displayed. Aframe rate might be used to describe how many frames of the stored videosequence are displayed per unit time. Example video sequences mightinclude 24 frames per second (24 FPS), 50 FPS, 140 FPS, or other framerates. In some implementations, frames are interlaced or otherwisepresented for display, but for the purpose of clarity of description, insome examples, it is assumed that a video frame has one specifieddisplay time and it should be understood that other variations arepossible.

One method of creating a video sequence is to simply use a video camerato record a live action scene, i.e., events that physically occur andcan be recorded by a video camera. The events being recorded can beevents to be interpreted as viewed (such as seeing two human actors talkto each other) and/or can include events to be interpreted differentlydue to clever camera operations (such as moving actors about a stage tomake one appear larger than the other despite the actors actually beingof similar build, or using miniature objects with other miniatureobjects so as to be interpreted as a scene containing life-sizedobjects).

Creating video sequences for story-telling or other purposes often callsfor scenes that cannot be created with live actors, such as a talkingtree, an anthropomorphic object, space battles, and the like. Such videosequences might be generated computationally rather than capturing lightfrom live scenes. In some instances, an entirety of a video sequencemight be generated computationally, as in the case of acomputer-animated feature film. In some video sequences, it is desirableto have some computer-generated imagery and some live action, perhapswith some careful merging of the two.

While computer-generated imagery might be creatable by manuallyspecifying each color value for each pixel in each frame, this is likelytoo tedious to be practical. As a result, a creator uses various toolsto specify the imagery at a higher level. As an example, an artist mightspecify the positions in a scene space, such as a three-dimensionalcoordinate system, of objects and/or lighting, as well as a cameraviewpoint, and a camera view plane. Taking all of that as inputs, arendering engine may compute each of the pixel values in each of theframes. In another example, an artist specifies position and movement ofan articulated object having some specified texture rather thanspecifying the color of each pixel representing that articulated objectin each frame.

In a specific example, a rendering engine performs ray tracing wherein apixel color value is determined by computing which objects lie along aray traced in the scene space from the camera viewpoint through a pointor portion of the camera view plane that corresponds to that pixel. Forexample, a camera view plane might be represented as a rectangle havinga position in the scene space that is divided into a grid correspondingto the pixels of the ultimate image to be generated, and if a raydefined by the camera viewpoint in the scene space and a given pixel inthat grid first intersects a solid, opaque, blue object, that givenpixel is assigned the color blue. Of course, for moderncomputer-generated imagery, determining pixel colors—and therebygenerating imagery—can be more complicated, as there are lightingissues, reflections, interpolations, and other considerations.

As illustrated in FIG. 9, a live action capture system 902 captures alive scene that plays out on a stage 904. The live action capture system902 is described herein in greater detail, but might include computerprocessing capabilities, image processing capabilities, one or moreprocessors, program code storage for storing program instructionsexecutable by the one or more processors, as well as user input devicesand user output devices, not all of which are shown.

In a specific live action capture system, cameras 906(1) and 906(2)capture the scene, while in some systems, there might be other sensor(s)908 that capture information from the live scene (e.g., infraredcameras, infrared sensors, motion capture (“mo-cap”) detectors, etc.).On the stage 904, there might be human actors, animal actors, inanimateobjects, background objects, and possibly an object such as a greenscreen 910 that is designed to be captured in a live scene recording insuch a way that it is easily overlaid with computer-generated imagery.The stage 904 might also contain objects that serve as fiducials, suchas fiducials 912(1)-(3), that might be used post-capture to determinewhere an object was during capture. A live action scene might beilluminated by one or more lights, such as an overhead light 914.

During or following the capture of a live action scene, the live actioncapture system 902 might output live action footage to a live actionfootage storage 920. A live action processing system 922 might processlive action footage to generate data about that live action footage andstore that data into a live action metadata storage 924. The live actionprocessing system 922 might include computer processing capabilities,image processing capabilities, one or more processors, program codestorage for storing program instructions executable by the one or moreprocessors, as well as user input devices and user output devices, notall of which are shown. The live action processing system 922 mightprocess live action footage to determine boundaries of objects in aframe or multiple frames, determine locations of objects in a liveaction scene, where a camera was relative to some action, distancesbetween moving objects and fiducials, etc. Where elements are sensoredor detected, the metadata might include location, color, and intensityof the overhead light 914, as that might be useful in post-processing tomatch computer-generated lighting on objects that are computer-generatedand overlaid on the live action footage. The live action processingsystem 922 might operate autonomously, perhaps based on predeterminedprogram instructions, to generate and output the live action metadataupon receiving and inputting the live action footage. The live actionfootage can be camera-captured data as well as data from other sensors.

An animation creation system 930 is another part of the visual contentgeneration system 900. The animation creation system 930 might includecomputer processing capabilities, image processing capabilities, one ormore processors, program code storage for storing program instructionsexecutable by the one or more processors, as well as user input devicesand user output devices, not all of which are shown. The animationcreation system 930 might be used by animation artists, managers, andothers to specify details, perhaps programmatically and/orinteractively, of imagery to be generated. From user input and data froma database or other data source, indicated as a data store 932, theanimation creation system 930 might generate and output datarepresenting objects (e.g., a horse, a human, a ball, a teapot, a cloud,a light source, a texture, etc.) to an object storage 934, generate andoutput data representing a scene into a scene description storage 936,and/or generate and output data representing animation sequences to ananimation sequence storage 938.

Scene data might indicate locations of objects and other visualelements, values of their parameters, lighting, camera location, cameraview plane, and other details that a rendering engine 950 might use torender CGI imagery. For example, scene data might include the locationsof several articulated characters, background objects, lighting, etc.specified in a two-dimensional space, three-dimensional space, or otherdimensional space (such as a 2.5-dimensional space, three-quarterdimensions, pseudo-3D spaces, etc.) along with locations of a cameraviewpoint and view place from which to render imagery. For example,scene data might indicate that there is to be a red, fuzzy, talking dogin the right half of a video and a stationary tree in the left half ofthe video, all illuminated by a bright point light source that is aboveand behind the camera viewpoint. In some cases, the camera viewpoint isnot explicit, but can be determined from a viewing frustum. In the caseof imagery that is to be rendered to a rectangular view, the frustumwould be a truncated pyramid. Other shapes for a rendered view arepossible and the camera view plane could be different for differentshapes.

The animation creation system 930 might be interactive, allowing a userto read in animation sequences, scene descriptions, object details, etc.and edit those, possibly returning them to storage to update or replaceexisting data. As an example, an operator might read in objects fromobject storage into a baking processor that would transform thoseobjects into simpler forms and return those to the object storage 934 asnew or different objects. For example, an operator might read in anobject that has dozens of specified parameters (movable joints, coloroptions, textures, etc.), select some values for those parameters andthen save a baked object that is a simplified object with now fixedvalues for those parameters.

Rather than have to specify each detail of a scene, data from the datastore 932 might be used to drive object presentation. For example, if anartist is creating an animation of a spaceship passing over the surfaceof the Earth, instead of manually drawing or specifying a coastline, theartist might specify that the animation creation system 930 is to readdata from the data store 932 in a file containing coordinates of Earthcoastlines and generate background elements of a scene using thatcoastline data.

Animation sequence data might be in the form of time series of data forcontrol points of an object that has attributes that are controllable.For example, an object might be a humanoid character with limbs andjoints that are movable in manners similar to typical human movements.An artist can specify an animation sequence at a high level, such as“the left hand moves from location (X1, Y1, Z1) to (X2, Y2, Z2) overtime T1 to T2”, at a lower level (e.g., “move the elbow joint 2.5degrees per frame”) or even at a very high level (e.g., “character Ashould move, consistent with the laws of physics that are given for thisscene, from point P1 to point P2 along a specified path”).

Animation sequences in an animated scene might be specified by whathappens in a live action scene. An animation driver generator 944 mightread in live action metadata, such as data representing movements andpositions of body parts of a live actor during a live action scene, andgenerate corresponding animation parameters to be stored in theanimation sequence storage 938 for use in animating a CGI object. Thiscan be useful where a live action scene of a human actor is capturedwhile wearing mo-cap fiducials (e.g., high-contrast markers outsideactor clothing, high-visibility paint on actor skin, face, etc.) and themovement of those fiducials is determined by the live action processingsystem 922. The animation driver generator 944 might convert thatmovement data into specifications of how joints of an articulated CGIcharacter are to move over time.

A rendering engine 950 can read in animation sequences, scenedescriptions, and object details, as well as rendering engine controlinputs, such as a resolution selection and a set of renderingparameters. Resolution selection might be useful for an operator tocontrol a trade-off between speed of rendering and clarity of detail, asspeed might be more important than clarity for a movie maker to test aparticular interaction or direction, while clarity might be moreimportant that speed for a movie maker to generate data that will beused for final prints of feature films to be distributed. The renderingengine 950 might include computer processing capabilities, imageprocessing capabilities, one or more processors, program code storagefor storing program instructions executable by the one or moreprocessors, as well as user input devices and user output devices, notall of which are shown.

The visual content generation system 900 can also include a mergingsystem 960 that merges live footage with animated content. The livefootage might be obtained and input by reading from the live actionfootage storage 920 to obtain live action footage, by reading from thelive action metadata storage 924 to obtain details such as presumedsegmentation in captured images segmenting objects in a live actionscene from their background (perhaps aided by the fact that the greenscreen 910 was part of the live action scene), and by obtaining CGIimagery from the rendering engine 950.

A merging system 960 might also read data from a rulesets formerging/combining storage 962. A very simple example of a rule in aruleset might be “obtain a full image including a two-dimensional pixelarray from live footage, obtain a full image including a two-dimensionalpixel array from the rendering engine 950, and output an image whereeach pixel is a corresponding pixel from the rendering engine 950 whenthe corresponding pixel in the live footage is a specific color ofgreen, otherwise output a pixel value from the corresponding pixel inthe live footage.”

The merging system 960 might include computer processing capabilities,image processing capabilities, one or more processors, program codestorage for storing program instructions executable by the one or moreprocessors, as well as user input devices and user output devices, notall of which are shown. The merging system 960 might operateautonomously, following programming instructions, or might have a userinterface or programmatic interface over which an operator can control amerging process. In some implementations, an operator can specifyparameter values to use in a merging process and/or might specifyspecific tweaks to be made to an output of the merging system 960, suchas modifying boundaries of segmented objects, inserting blurs to smoothout imperfections, or adding other effects. Based on its inputs, themerging system 960 can output an image to be stored in a static imagestorage 970 and/or a sequence of images in the form of video to bestored in an animated/combined video storage 972.

Thus, as described, the visual content generation system 900 can be usedto generate video that combines live action with computer-generatedanimation using various components and tools, some of which aredescribed in more detail herein. While the visual content generationsystem 900 might be useful for such combinations, with suitablesettings, it can be used for outputting entirely live action footage orentirely CGI sequences. The code may also be provided and/or carried bya transitory computer readable medium, e.g., a transmission medium suchas in the form of a signal transmitted over a network.

FIG. 10 shows an example of a method 1000 of managing associationsbetween production elements and production approaches using, forexample, GUI 106 (see FIG. 1).

Method 1000 includes displaying 1002 at least one scene obtained fromscript 104. In an implementation, the scene(s) is/are displayed withinbreakdown panel 202 (see FIG. 2). Any production elements associatedwith the scenes are also displayed within breakdown panel 202.

Method 1000 further includes displaying 1004 at least some of theproduction elements that are displayed within breakdown panel 202. Theproduction elements are displayed within approaches panel 214 (see FIG.2).

In an implementation, the production elements are displayed withinelements workspace 220. Displayed within elements workspace is a list ofproduction elements 600 (see FIG. 6), and associated respective userselection indicators 602, for example check boxes.

Method 1000 further includes displaying 1006 at least one productionapproach. In an implementation, the production approach(es) is/aredisplayed in approaches workspace 218 within approaches panel 214.

Method 1000 includes receiving 1008 a user selection of at least oneproduction element displayed within approaches panel 214, and receiving1010 a user selection of at least one production approach. In animplementation, user 102 operates input device 814 (see FIG. 8) andcursor control 816 while viewing display 812.

The method 1000 can include obtaining the script and separating thescript into a multiple scenes. For each scene among the multiple ofscenes method 1000 can perform natural language processing. Based on thenatural language processing, the method 1000 can identify a productionelement and a production approach associated with each scene in theplurality of scenes. The method 1000 can populate the breakdown panelwith the production element and the production approach associated witheach scene in the plurality of scenes. The method 1000 can be performedautomatically by a hardware or software processor executing instructionsdescribed in this application.

Method 1000 can include displaying, within the breakdown panel, aplurality of cells within a plurality of script rows. The representationof the at least one scene may be displayed within a plurality of cellswithin at least one of the script rows.

Method 1000 can further include displaying, within the breakdown panel,at least some of the plurality of cells within a plurality of productionapproach columns. At least some of the plurality of productionapproaches may be associated to respective production approachcategories.

A user may select at least one cell of the plurality of cells within thebreakdown panel. On receiving such a user selection, method 1000 maydisplay, within the approaches panel, a representation of at least oneproduction approach associated with the user-selected cell; and display,within the approaches panel, a representation of at least one productionelement associated with the user-selected cell.

A user may define a new production element within the breakdown panel.On receiving such a user definition, method 1000 may display the newproduction element in an element panel and/or the approaches panel.

A user may amend a production element within the breakdown panel. Onreceiving such a user amendment, method 1000 may display the amendedproduction element in an element panel and/or the approaches panel.

A user may amend a production element within an element panel. Onreceiving such a user amendment, method 1000 may display the amendedproduction element in the breakdown panel and/or the approaches panel.

Method 1000 may include displaying, within a category panel, arepresentation of at least one production element; and receiving, withinthe category panel, a user definition of a variant based at least partlyon the at least one production element displayed in the category panel.

Method 1000 may include displaying, within the breakdown panel, at leastsome of the plurality of cells within a plurality of production elementcolumns. At least some of the plurality of production elements columnsmay be associated to respective production element categories.

Method 1000 may include displaying an approaches workspace within theapproaches panel; and presenting the representation of at least oneproduction approach and associated respective production approach userselection indicators within the approaches workspace.

Method 1000 may include displaying an elements workspace within theapproaches panel; and presenting the representation of at least some ofthe plurality of production elements and associated respectiveproduction element user selection indicators within the elementsworkspace.

The production element(s) and production approach(es) selected by user102 are then associated with each other. The associations may be storedin data store 108 for example.

Operations of processes described herein can be performed in anysuitable order unless otherwise indicated herein or otherwise clearlycontradicted by context. Processes described herein (or variationsand/or combinations thereof) may be performed under the control of oneor more computer systems configured with executable instructions and maybe implemented as code (e.g., executable instructions, one or morecomputer programs or one or more applications) executing collectively onone or more processors, by hardware or combinations thereof. The codemay be stored on a computer-readable storage medium, for example, in theform of a computer program comprising a plurality of instructionsexecutable by one or more processors. The computer-readable storagemedium may be non-transitory.

Conjunctive language, such as phrases of the form “at least one of A, B,and C,” or “at least one of A, B and C,” unless specifically statedotherwise or otherwise clearly contradicted by context, is otherwiseunderstood with the context as used in general to present that an item,term, etc., may be either A or B or C, or any nonempty subset of the setof A and B and C. For instance, in the illustrative example of a sethaving three members, the conjunctive phrases “at least one of A, B, andC” and “at least one of A, B and C” refer to any of the following sets:{A}, {B}, {C}, {A, B}, {A, C}, {B, C}, {A, B, C}. Thus, such conjunctivelanguage is not generally intended to imply that certain embodimentsrequire at least one of A, at least one of B and at least one of C eachto be present.

The use of any and all examples, or exemplary language (e.g., “such as”)provided herein, is intended merely to better illuminate embodiments ofthe invention and does not pose a limitation on the scope of theinvention unless otherwise claimed. No language in the specificationshould be construed as indicating any non-claimed element as essentialto the practice of the invention.

In the foregoing specification, embodiments of the invention have beendescribed with reference to numerous specific details that may vary fromimplementation to implementation. The specification and drawings are,accordingly, to be regarded in an illustrative rather than a restrictivesense. The sole and exclusive indicator of the scope of the invention,and what is intended by the applicants to be the scope of the invention,is the literal and equivalent scope of the set of claims that issue fromthis application, in the specific form in which such claims issue,including any subsequent correction.

Further embodiments can be envisioned to one of ordinary skill in theart after reading this disclosure. In other embodiments, combinations orsub-combinations of the above-disclosed invention can be advantageouslymade. The example arrangements of components are shown for purposes ofillustration and it should be understood that combinations, additions,re-arrangements, and the like are contemplated in alternativeembodiments of the present invention. Thus, while the invention has beendescribed with respect to exemplary embodiments, one skilled in the artwill recognize that numerous modifications are possible.

For example, the processes described herein may be implemented usinghardware components, software components, and/or any combinationthereof. The specification and drawings are, accordingly, to be regardedin an illustrative rather than a restrictive sense. It will, however, beevident that various modifications and changes may be made thereuntowithout departing from the broader spirit and scope of the invention asset forth in the claims and that the invention is intended to cover allmodifications and equivalents within the scope of the following claims.

All references, including publications, patent applications, andpatents, cited herein are hereby incorporated by reference to the sameextent as if each reference were individually and specifically indicatedto be incorporated by reference and were set forth in its entiretyherein.

What is claimed is:
 1. A method comprising: obtaining a scriptindicating multiple scenes, multiple production elements, and multipleproduction approaches, wherein a production element among the multipleproduction elements is associated with a noun in the script, wherein aproduction approach is associated with a verb or an adjective in thescript; identifying a subset of multiple scenes among the multiplescenes, wherein the subset of multiple scenes includes the productionelement and the production approach; creating a correspondence betweenthe production element, the production approach, and the subset ofmultiple scenes; receiving a change to at least one of the productionelement or the production approach; and automatically propagating thechange to each scene among the subset of multiple scenes.
 2. The methodof claim 1 comprising: obtaining the script; separating the script intothe multiple scenes; iterating through each scene among the multiplescenes by performing natural language processing associated with theeach scene; based on the natural language processing, identifying aproduction element and a production approach associated with each sceneamong the multiple scenes; and creating a presentation comprising theproduction element and the production approach associated with the eachscene among the multiple scenes.
 3. The method of claim 1 comprising:obtaining a role associated with a user; and based on the roleassociated with the user, creating a presentation associated with theproduction element and the production approach relevant to the roleassociated with the user.
 4. The method of claim 1 comprising: obtaininga role associated with a user; and upon receiving the change to at leastone of the production element or the production approach, wherein thechange impacts the production element or the production approachpresented to the user, enabling the user to ensure continuity betweenthe multiple scenes by presenting to the user the change, the productionelement, and the production approach associated with the multiplescenes.
 5. The method of claim 1 comprising: receiving a modification tothe automatically propagated change from a user; and modifying theautomatically propagated change based on the modification.
 6. The methodof claim 1 wherein the production approach comprises special effectsassociated with a scene among the multiple scenes, a shading associatedwith the scene, or an animation effect associated with the scene.
 7. Themethod of claim 1 wherein the production approach specifies arelationship between two or more production elements.
 8. The method ofclaim 1 wherein the production element comprises characters, creatures,vehicles or props.
 9. At least one computer-readable storage medium,excluding transitory signals and carrying instructions, which, whenexecuted by at least one data processor of a system, cause the systemto: obtain a script indicating multiple scenes, multiple productionelements, and multiple production approaches, wherein a productionelement among the multiple production elements is associated with a nounin the script, wherein a production approach is associated with a verbor an adjective in the script; identify a subset of multiple scenesamong the multiple scenes, wherein the subset of multiple scenesincludes the production element and the production approach; create acorrespondence between the production element, the production approach,and the subset of multiple scenes; receive a change to at least one ofthe production element or the production approach; and automaticallypropagate the change to each scene among the subset of multiple scenes.10. The computer-readable storage medium of claim 9 comprisinginstructions to: obtain the script; separate the script into themultiple scenes; iterate through each scene among the multiple scenes byperforming natural language processing associated with the each scene;based on the natural language processing, identify a production elementand a production approach associated with each scene among the multiplescenes; and create a presentation comprising the production element andthe production approach associated with the each scene among themultiple scenes.
 11. The computer-readable storage medium of claim 9comprising instructions to: obtain a role associated with a user; andbased on the role associated with the user, create a presentationassociated with the production element and the production approachrelevant to the role associated with the user.
 12. The computer-readablestorage medium of claim 9 comprising instructions to: obtain a roleassociated with a user; and upon receiving the change to at least one ofthe production element or the production approach, wherein the changeimpacts the production element or the production approach presented tothe user, enable the user to ensure continuity between the multiplescenes by presenting to the user the change, the production element, andthe production approach associated with the multiple scenes.
 13. Thecomputer-readable storage medium of claim 9 comprising instructions to:receive a modification to the automatically propagated change from auser; and modify the automatically propagated change based on themodification.
 14. The computer-readable storage medium of claim 9,wherein the production approach comprises special effects associatedwith a scene among the multiple scenes, a shading associated with thescene, or an animation effect associated with the scene.
 15. Thecomputer-readable storage medium of claim 9, wherein the productionapproach specifies a relationship between two or more productionelements.
 16. The computer-readable storage medium of claim 9, whereinthe production element comprises characters, creatures, vehicles orprops.
 17. A system comprising: at least one hardware processor; and atleast one non-transitory memory storing instructions, which, whenexecuted by the at least one hardware processor, cause the system to:obtain a script indicating multiple scenes, multiple productionelements, and multiple production approaches, wherein a productionelement among the multiple production elements is associated with a nounin the script, wherein a production approach is associated with a verbor an adjective in the script; identify a subset of multiple scenesamong the multiple scenes, wherein the subset of multiple scenesincludes the production element and the production approach; create acorrespondence between the production element, the production approach,and the subset of multiple scenes; receive a change to at least one ofthe production element or the production approach; and automaticallypropagate the change to each scene among the subset of multiple scenes.18. The system of claim 17 comprising instructions to: obtain thescript; separate the script into the multiple scenes; iterate througheach scene among the multiple scenes by performing natural languageprocessing associated with the each scene; based on the natural languageprocessing, identify a production element and a production approachassociated with each scene among the multiple scenes; and create apresentation comprising the production element and the productionapproach associated with the each scene among the multiple scenes. 19.The system of claim 17 comprising instructions to: obtain a roleassociated with a user; and based on the role associated with the user,create a presentation associated with the production element and theproduction approach relevant to the role associated with the user. 20.The system of claim 17 comprising instructions to: obtain a roleassociated with a user; and upon receiving the change to at least one ofthe production element or the production approach, wherein the changeimpacts the production element or the production approach presented tothe user, enable the user to ensure continuity between the multiplescenes by presenting to the user the change, the production element, andthe production approach associated with the multiple scenes.
 21. Thesystem of claim 17 comprising instructions to: receive a modification tothe automatically propagated change from a user; and modify theautomatically propagated change based on the modification.
 22. Thesystem of claim 17, wherein the production approach comprises specialeffects associated with a scene among the multiple scenes, a shadingassociated with the scene, or an animation effect associated with thescene.
 23. The system of claim 17, wherein the production approachspecifies a relationship between two or more production elements. 24.The system of claim 17, wherein the production element comprisescharacters, creatures, vehicles or props.